Release 10.1A: OpenEdge Development:
AppBuilder


Layout cases internal procedure

This internal procedure contains a CASE statement that has an entry for each layout in the procedure file. The CASE statement entry contains the run-time assignments for the layout. The Preprocessor reference {&LAYOUT-VARIABLE} resolves to the name of the window in the procedure file prefixed to -layout. Following is a sample layout case’s internal procedure. Note that the variable name {&LAYOUT-VARIABLE} is usually the same as {&WINDOW-NAME}-layout. The layout cases internal procedure is named {&LAYOUT-VARIABLE} variables, which in this sample resolves to C-Win-layouts:

PROCEDURE C-Win-layouts:
  DEFINE INPUT PARAMETER layout AS CHARACTER                     NO-UNDO.
  DEFINE VARIABLE lbl-hndl AS WIDGET-HANDLE                      NO-UNDO.
  DEFINE VARIABLE widg-pos AS DECIMAL                            NO-UNDO.

  /* Copy the name of the active layout into a variable accessible to   */
  /* the rest of this file.                                            */
  C-Win-layout = layout.

  CASE layout:
    WHEN "Master Layout" THEN DO:
      ASSIGN
         &IF ’{&WINDOW-SYSTEM}’ NE ’TTY’:U &THEN
         C-Win:HIDDEN                                     = yes &ENDIF
         C-Win:HEIGHT                                     = 16.

      ASSIGN
         Btn_Done:HIDDEN IN FRAME DEFAULT-FRAME           = yes
         Btn_Done:HEIGHT IN FRAME DEFAULT-FRAME           = 1.14
         Btn_Done:ROW IN FRAME DEFAULT-FRAME              = 3.62
         Btn_Done:HIDDEN IN FRAME DEFAULT-FRAME           = no.

      ASSIGN
         Btn_Help:HIDDEN IN FRAME DEFAULT-FRAME           = yes
         Btn_Help:HEIGHT IN FRAME DEFAULT-FRAME           = 1.14
         Btn_Help:ROW IN FRAME DEFAULT-FRAME              = 3.38
         Btn_Help:HIDDEN IN FRAME DEFAULT-FRAME           = no
         Btn_Help:HIDDEN IN FRAME DEFAULT-FRAME           = no. 
      ASSIGN
         C-Win:VIRTUAL-HEIGHT                             = 16.00
         &IF ’{&WINDOW-SYSTEM}’ NE ’TTY’:U &THEN
         C-Win:HIDDEN                                     = no &ENDIF.

    END. /* Master Layout Layout Case */

    WHEN "Standard Character":U THEN DO:
      ASSIGN
         Btn_Done:HIDDEN IN FRAME DEFAULT-FRAME           = yes
         Btn_Done:HEIGHT IN FRAME DEFAULT-FRAME           = 1
         Btn_Done:ROW IN FRAME DEFAULT-FRAME              = 4
         Btn_Done:HIDDEN IN FRAME DEFAULT-FRAME           = no NO-ERROR.

      ASSIGN
         Btn_Help:HIDDEN IN FRAME DEFAULT-FRAME           = yes
         Btn_Help:HEIGHT IN FRAME DEFAULT-FRAME           = 1
         Btn_Help:ROW IN FRAME DEFAULT-FRAME              = 3 NO-ERROR.

    END. /* Standard Character Layout Case */

  END CASE.
END PROCEDURE. /* C-Win-layouts */ 

This sample contains CASE statement entries for two layouts, the master layout and the standard character layout. The Btn_Help button appears in the master layout but not in the standard character layout. The master layout also sets size properties to decimal character units because a graphical environment supports fractions of a character. However, in a character environment, they are set to integer character units.


Copyright © 2005 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095